import { DataStorageKey } from "../Enum"
import { UserInfo } from "../sdk/SDKBase"

/**
 * 数据存储
 */
export default class DataStorage {

    /**
     * 获取最大关卡数量
     * @returns 
     */
    public static getMaxLevel(): number {
        const maxLevel = cc.sys.localStorage.getItem(DataStorageKey.MAX_LEVEL)
        if (!maxLevel) {
            return 6
        }
        return JSON.parse(maxLevel)
    }

    /**
     * 设置最大关卡数量
     * @param num
     */
    public static setMaxLevel(num: number) {
        const value = JSON.stringify(num)
        cc.sys.localStorage.setItem(DataStorageKey.MAX_LEVEL, value)
    }

    /**
     * 获取已解锁的等级
     * @returns 
     */
    public static getUnLockLevel(): number {
        const value = cc.sys.localStorage.getItem(DataStorageKey.UN_LOCK_LEVEL)
        if (!value) {
            return 1
        }
        return JSON.parse(value)
    }

    /**
     * 设置已解锁的等级
     * @param num 
     */
    public static setUnLockLevel(num: number) {
        const value = JSON.stringify(num)
        cc.sys.localStorage.setItem(DataStorageKey.UN_LOCK_LEVEL, value)
    }

    /**
     * 设置用户信息
     * @param userInfo 
     */
    public static setUserInfo(userInfo: UserInfo) {
        const value = JSON.stringify(userInfo)
        cc.sys.localStorage.setItem(DataStorageKey.USER_INFO, value)
    }

    /**
     * 获取用户信息，如果信息不存在，返回null
     */
    public static getUserInfo(): UserInfo {
        const value = cc.sys.localStorage.getItem(DataStorageKey.USER_INFO)
        if (!value) {
            return null
        }
        return JSON.parse(value)
    }
}